Home » Timp Liber » Cum sa construiesti o harpa electronica – Smart Nation

Cum sa construiesti o harpa electronica – Smart Nation

Cum sa construiesti o harpa electronica – Smart Nation
Publicat: 02.12.2013
Scris de Viorel Spinu
In tutorialul  de saptamana aceasta vreau sa va povestesc despre cum putem construi o harpa electronica folosing placa Arduino.  Pentru inceput va invit sa urmariti urmatorul video:
 
 
O harpa electronica are in loc de corzile din metal niste corzi invizibile din laser, iar atunci cand treci cu mana prin dreptul senzorului de lumina, ciupesti practic raza si generezi melodii, asa cum se intampla la o harpa obisnuita.
 
Daca vreti sa construiti o harpa electronica atunci va pot fi de mare folos codurile sursa pe care le impartasec acum cu voi.
 
Placa Arduino este practic creierul intregii operatiuni. Ea ruleaza codul sursa pe care il gasiti detaliat mai jos si care va ajuta sa emiteti notele muzicale.
 
>>cod sursa harpa
 
#include
 
#include
 
#define SOUND_RELEASE_TIME 1000
 
#define INSTRUMENT_COUNT 16
 
#define VOLUME 127 // an int between 0 and 127
 
byte resetMIDI = 4;
 
byte ledPin = 13;
 
byte stari[16];
 
byte hittedNote[INSTRUMENT_COUNT];
 
uint32_t timestamp[INSTRUMENT_COUNT];
 
long valCapSens[INSTRUMENT_COUNT];
 
#define T 0×78  //TOBE
 
#define M 0×79 //MELODIC
 
byte nota[INSTRUMENT_COUNT] =            {
 
62, 63, 49, 64, 65, 66, 67, 68, 69, 66, 43,  30, 57, 41,  61,  48};
 
int instrumentNumber[INSTRUMENT_COUNT] = {
 
3,  3, -1, 3,  3,  3,  3,  3,  3,  -1, -1,  -1, -1, -1,  -1,  -1};
 
int bank[INSTRUMENT_COUNT] =             {
 
M,  M,  T, M,  M,  M,  M,  M,  M,   T,  T,   T,  T,  T,   T,   T};
 
SoftwareSerial mySerial(2, 3);
 
boolean USE_SINGLE_TRESHOLD = true;
 
int PRAG_PRESETAT = 300;
 
int PRAG_SENZORI[INSTRUMENT_COUNT] = {
 
2000, 3500, 3500, 3500, 3500, 3500, 2000, 1000, 2000, 3500, 3500, 3500, 3500, 2000, 1000, 2000};
 
int SAMPLES = 50;
 
//long AUTOCAL_MILLIS = 0xFFFFFFFF;
 
long AUTOCAL_MILLIS = 200;
 
void loop() {
 
int lumina = analogRead(0);
 
if (lumina
 
noteON(8);
 
}
 
delay(100);
 
}
 
void noteON(int index){
 
talkMIDI(0xB0, 0×07, VOLUME);
 
talkMIDI(0xB0, 0, bank[0]);
 
talkMIDI(0xC0, instrumentNumber[1], 0);
 
noteOn(0, nota[index], 127);
 
 
 
}
 
void setup()  {
 
Serial.begin(115200);
 
midi_setup();
 
talkMIDI(0xB0, 0×07, VOLUME);
 
if (USE_SINGLE_TRESHOLD) {
 
for (int counter = 0; counter
 
PRAG_SENZORI[counter] = PRAG_PRESETAT;
 
}
 
}
 
}
 
void midi_setup() {
 
mySerial.begin(31250);
 
pinMode(resetMIDI, OUTPUT);
 
digitalWrite(resetMIDI, LOW);
 
delay(100);
 
digitalWrite(resetMIDI, HIGH);
 
delay(100);
 
for(int i; i
 
timestamp[i] = 0xFFFFFFFF;
 
}
 
talkMIDI(0xB0, 0, 0×00);
 
}
 
void noteOn(byte channel, byte note, byte attack_velocity) {
 
talkMIDI( (0×90 | channel), note, attack_velocity);
 
}
 
void noteOff(byte channel, byte note, byte release_velocity) {
 
talkMIDI( (0×80 | channel), note, release_velocity);
 
}
 
void talkMIDI(byte cmd, byte data1, byte data2) {
 
digitalWrite(ledPin, HIGH);
 
mySerial.write(cmd);
 
mySerial.write(data1);
 
if( (cmd & 0xF0)
 
mySerial.write(data2);
 
digitalWrite(ledPin, LOW);
 
}
 
void printPaddingZeros(long number) {
 
if (number
 
Serial.print(“     “);
 
}
 
else if (number
 
Serial.print(“    “);
 
}
 
else if (number
 
Serial.print(“   “);
 
}
 
else if (number
 
Serial.print(“  “);
 
}
 
Serial.print(number);
 
}
 
Si apoi daca vreti sa vedeti cum functioneaza senzorul de lumina atunci trebuie sa utilizati codul sursa de mai jos:
 
>>senzor lumina
 
void setup(){
 
Serial.begin(9600);
 
 
 
}
 
void loop(){
 
int lumina = analogRead(0);
 
Serial.println(lumina);
 
}
 
 
 
Smart Nation este platforma unde tehnologia va inspira pe voi toti. Sa va imaginati, sa inovati, sa creati!
 
Intra pe SmartNation.ro daca vrei sa fii informat in legatura cu noile gadget-uri, dar si pentru a putea afla cum functioneaza, ce fac si cum iti pot imbunatati viata de zi cu zi. 
 
 
Urmărește DESCOPERĂ.ro pe
Google News și Google Showcase
Cele mai noi articole
Oamenii de știință au dezvăluit coroana unei găuri negre pentru prima dată
Oamenii de știință au dezvăluit coroana unei găuri negre pentru prima dată
Clara Barton, creatoarea Crucii Roșii Americane. „Mi-aș dori doar să pot lucra pentru un scop anume”
Clara Barton, creatoarea Crucii Roșii Americane. „Mi-aș dori doar să pot lucra pentru un scop anume”
Maurice Jarre, unul dintre cei mai prolifici compozitori de muzică de film. Tatăl muzicianului Jean Michel Jarre
Maurice Jarre, unul dintre cei mai prolifici compozitori de muzică de film. Tatăl muzicianului Jean Michel Jarre
Jean Michel Jarre, Nașul muzicii electronice. „Pentru mine, muzica electronică este la fel ca gătitul: este o activitate organică senzuală în care poți amesteca ingrediente”
Jean Michel Jarre, Nașul muzicii electronice. „Pentru mine, muzica electronică este la fel ca gătitul: este o activitate ...
Ce întâmplă cu sănătatea oamenilor de peste 50 de ani care folosesc Internetul?
Ce întâmplă cu sănătatea oamenilor de peste 50 de ani care folosesc Internetul?
Femeile dorm mai puțin și se trezesc mai des decât bărbații
Femeile dorm mai puțin și se trezesc mai des decât bărbații
Test de cultură generală. Câte laturi are Marea Piramidă din Giza?
Test de cultură generală. Câte laturi are Marea Piramidă din Giza?
„Stocarea cuantică” este mai aproape de realitate după ce oamenii de știință au rezolvat o problemă veche de 10 ani
„Stocarea cuantică” este mai aproape de realitate după ce oamenii de știință au rezolvat o problemă veche de 10 ani
Al doilea vaccin împotriva variolei maimuței, aprobat de OMS
Al doilea vaccin împotriva variolei maimuței, aprobat de OMS
Chatbotul Google Gemini a primit o funcție de „memorie”
Chatbotul Google Gemini a primit o funcție de „memorie”
Record de turiști în Japonia! Cât au cheltuit cei 3,31 milioane de vizitatori?
Record de turiști în Japonia! Cât au cheltuit cei 3,31 milioane de vizitatori?
Controversa din jurul asasinării lui Kennedy. Cine l-a vrut mort şi ce rol are teoria lui Pacepa?
Controversa din jurul asasinării lui Kennedy. Cine l-a vrut mort şi ce rol are teoria lui Pacepa?
Dan Diaconescu vorbește, în premieră, despre morțile suspecte care au împărțit România în două | EXCLUSIV Altceva cu Adrian Artene
Dan Diaconescu vorbește, în premieră, despre morțile suspecte care au împărțit România în două | EXCLUSIV Altceva ...
1 din 10 copii, victimă a violenței în primele două luni ale anului școlar
1 din 10 copii, victimă a violenței în primele două luni ale anului școlar
Unde au dispărut grădinițele de stat din România?
Unde au dispărut grădinițele de stat din România?
Un studiu arată că oamenii poate absorbi vitamine direct din aer
Un studiu arată că oamenii poate absorbi vitamine direct din aer
Mulți oameni suferă fără să știe de „ura față de mișcare”
Mulți oameni suferă fără să știe de „ura față de mișcare”
Copiii neandethalieni ar fi colecționat fosile la fel cum cei de azi colecționează abțibilduri
Copiii neandethalieni ar fi colecționat fosile la fel cum cei de azi colecționează abțibilduri